require('./libs/Mixins.js');

const themeListeners = [];

App({
    onLaunch() {
        // 展示本地存储能力
        const logs = wx.getStorageSync('logs') || []
        logs.unshift(Date.now())
        wx.setStorageSync('logs', logs)

        // 登录
        wx.login({
            success: res => {
                // 发送 res.code 到后台换取 openId, sessionKey, unionId
                wx.request({
                    url: `${this.globalData.MyIoTDomain}/api/wechat/`,
                    data: {
                        'json_code': res.code
                    },
                    method: 'GET',
                    header: {
                        'content-type': 'application/x-www-form-urlencoded',
                    },
                    success: (res) => {
                        this.globalData.openid = res.data.openid

                        wx.setStorageSync('openid', res.data.openid)
                        wx.setStorageSync('session_key', res.data.session_key)
                        console.log(res)
                        console.log(wx.getStorageSync('openid'))
                    }
                })
            }
        })
        // 获取用户信息
        wx.getSetting({
            success: res => {
                if (res.authSetting['scope.userInfo']) {
                    // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
                    wx.getUserInfo({
                        success: res => {
                            // 可以将 res 发送给后台解码出 unionId
                            this.globalData.userInfo = res.userInfo

                            // 由于 getUserInfo 是网络请求，可能会在 Page.onLoad 之后才返回
                            // 所以此处加入 callback 以防止这种情况
                            if (this.userInfoReadyCallback) {
                                this.userInfoReadyCallback(res)
                            }
                        }
                    })
                }
            }
        })
    },
    globalData: {
        theme: 'light', // dark
        IAMEndpoint: 'https://iam.cn-north-4.myhuaweicloud.com',
        IOTDAEndpoint: 'https://iotda.cn-north-4.myhuaweicloud.com',
        MyIoTDomain: 'https://iot.3esoft.cn', //'http://localhost:5003',
        userInfo: null,
        region: 'cn-north-4',
        project_id: '',
        app_name: 'HarmonyOS_Match',
        app_id: '',
        token: wx.getStorageSync('token') || '',
        iamAccount: wx.getStorageSync('iamAccount') || '',
        account: wx.getStorageSync('account') || '',
        openid: ''
    },
    themeChanged(theme) {
        this.globalData.theme = theme;
        themeListeners.forEach((listener) => {
            listener(theme);
        });
    },
    watchThemeChange(listener) {
        if (themeListeners.indexOf(listener) < 0) {
            themeListeners.push(listener);
        }
    },
    unWatchThemeChange(listener) {
        const index = themeListeners.indexOf(listener);
        if (index > -1) {
            themeListeners.splice(index, 1);
        }
    },
});